package mlz.a_inner;

//成员内部类
public class Outer {
    //外部类的成员变量
    private int age = 100;
    public static String name = "张三";

    //内部类
    public class Inner{
        //内部类的成员变量
        private int age = 30;
        private String name;

        //成员方法
        public void test(){
            //局部变量
            int age = 50;
            System.out.println(age);//50
            System.out.println(this.age); //30
            System.out.println(Outer.this.age);//100
        }
    }

    //静态内部类 -> 随着类一起进行做一次性加载 -> 出现在在对象之前
    public static class Inner2{
        public void test(){
            System.out.println(name);
            //System.out.println(age);
        }
    }

    //普通成员方法
    public void method(){
        //局部内部类
        class Inner{
            //成员方法
            public void test(){
                System.out.println("这是局部内部类");
            }
        }

        //局部内部类只能在方法中创建对象并使用
        Inner in = new Inner();
        in.test();
    }

}
